package org.aeon.fasttasks.core.annotation;

import org.aeon.fasttasks.core.recorder.AsyncCsvRecorder;
import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * @author aeon
 * @createTime 2025/08/07  10:18
 * @description 注入异步csv记录器
 * @see AsyncCsvRecorder
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface InjectAsyncCsvRecorder {

    /**
     * 文件路径
     * {@link #path()}
     *
     * @return
     */
    @AliasFor("path")
    String value() default "";

    /**
     * 文件路径
     * {@link #value()}
     *
     * @return
     */
    @AliasFor("value")
    String path() default "";

    /**
     * 标头
     *
     * @return
     */
    String[] headers() default {};

    /**
     * 队列大小
     *
     * @return
     */
    int queueSize() default 10000;

    /**
     * 批量大小
     *
     * @return
     */
    int batchSize() default 100;

    /**
     * 是否记录时间
     *
     * @return
     */
    boolean recordingTime() default true;

}
